﻿/***
  \brief  Функции , которые экспортирует DLL
*/

#pragma once

#include <Windows.h>
#include "common_types.h"
#include "core_api.h" 


//!   \brief получить версию ядра
extern "C" CORE_API void CoreGetVersionInfo(int* pVersMajor, int* pVersionMinor, int* pBuildNumber);
//!   \brief Инициализация ядра. Вызывается только один раз
extern "C" CORE_API HRESULT CoreInit( PCoreInitData pcid, PGuiCallbackData pccd );
//!   \brief ЗАвершение
extern "C" CORE_API void CoreFinalize( PGuiCallbackData pccd );

const int ERROR_FLAG_CRITICAL = 1;
const int ERROR_FLAG_SHOWMESSAGEBOX = 2;


//!    \brief Обработка ошибки по сообщению.
extern "C" CORE_API void CoreHandleError(int flags, int id, const char* msg);

//!    \brief Записать в общий лог сообщение
extern "C" CORE_API void CoreLogMessage(const char* msg);
// //!   \brief Пользователь выбрал пункт индекс слова. Нажал на кнопку
//extern "C" CORE_API void CoreNotifyFormGuessWord_SelectWordIndex( PGuiCallbackData pccd ,int index);
//!   \brief Выбрать нового пользователя
extern "C" CORE_API void CoreSelectUser(PGuiCallbackData pccd);
//!   \brief Уведомление о событии GUI
extern "C" CORE_API void CoreGuiEventNotify(PGuiEventNotifyInfo* pgeni);

//!   \brief ПОлучить кол-во слов в словаре
extern "C" CORE_API int CoreDictGetNumWords(PGuiCallbackData pccd);
//!    \brief Получить инф. слова (перевод) по названию (англоязычному). Вернёт flase если слова такого нет.
extern "C" CORE_API bool CoreDictGetWorldInfoWord (PGuiCallbackData pccd, char* dest_rus, const char* engWord);
//!    \brief ПОлучить инф. слова (перевод) по его номеру. Вернёт flase если слова такого нет.
extern "C" CORE_API bool CoreDictGetWorldInfoIndex(PGuiCallbackData pccd, char* dest_eng, char* dest_rus, const int engWordIndex);
//!   \brief Добавить новое слово в словарь. Вернёт false если слово уже есть
extern "C" CORE_API bool CoreDictAddNewWord(PGuiCallbackData pccd, const char* eng, const char* rus_line);
//!    \brief Изменить слово
extern "C" CORE_API bool CoreDictModifyWordIndex(PGuiCallbackData pccd, const char* rus, const int engWordIndex);
//!    \brief Удалить слово
extern "C" CORE_API bool CoreDictDeleteWordIndex(PGuiCallbackData pccd, const int engWordIndex);
//!    \brief Произнести слово
extern "C" CORE_API int CoreDictSpeakWord(const char* word);

//!    \brief ПОлучить конфигурационное значение.
extern "C" CORE_API int CoreGetConfigValue(char* dest, int destsize, const char* section, const char* key, const char* default);
//!    \brief  ЗАписать конфигурационное значение.
extern "C" CORE_API int CoreSetConfigValue(const char* section, const char* key, const char* value);




// end file